package com.intelligent.ispc.core.service.impl;

import com.intelligent.ispc.common.utils.ApplicationException;
import com.intelligent.ispc.common.utils.ExceptionMessages;
import com.intelligent.ispc.common.utils.StringUtils;
import com.intelligent.ispc.core.dto.SysConfigDto;
import com.intelligent.ispc.core.entity.SysConfig;
import com.intelligent.ispc.core.repository.SysConfigDao;
import com.intelligent.ispc.core.service.SysConfigService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by hao on 2016/9/18.
 */
@Service
public class SysConfigServiceImpl implements SysConfigService {

    @Autowired
    private SysConfigDao sysConfigDao;

    @Override
    public void create(SysConfigDto sysConfigDto) {
        if (sysConfigDto == null) {
            throw new ApplicationException(ExceptionMessages.EXCEPTION_PARAMETER_INPUT_INVALID);
        }
        SysConfig sysConfig = new SysConfig();
        BeanUtils.copyProperties(sysConfigDto, sysConfig);
        sysConfigDao.create(sysConfig);
    }

    @Override
    public void update(SysConfigDto sysConfigDto) {
        if (sysConfigDto == null) {
            throw new ApplicationException(ExceptionMessages.EXCEPTION_PARAMETER_INPUT_INVALID);
        }
        SysConfig sysConfig = new SysConfig();
        BeanUtils.copyProperties(sysConfigDto, sysConfig);
        sysConfigDao.update(sysConfig);
    }

    @Override
    public SysConfigDto findByName(String name) {
        if (StringUtils.isBlank(name)) {
            return null;
        }
        SysConfig sysConfig = sysConfigDao.findByName(name);
        if (sysConfig == null) {
            return null;
        }
        SysConfigDto sysConfigDto = new SysConfigDto();
        BeanUtils.copyProperties(sysConfig, sysConfigDto);
        return sysConfigDto;
    }
}
